using System;
using System.Reflection;
namespace MicroMsg.Storage
{
	public abstract class StorageItem
	{
		public long modify;
		public StorageItem()
		{
		}
		public void copy(object object_0)
		{
			MemberInfo[] members = object_0.GetType().GetMembers();
			MemberInfo[] array = members;
			for (int i = 0; i < array.Length; i++)
			{
				MemberInfo memberInfo = array[i];
				if (memberInfo.get_MemberType() == 4)
				{
					FieldInfo fieldInfo = memberInfo as FieldInfo;
					if (!(fieldInfo.get_Name() == "_version") && fieldInfo.GetValue(this) != fieldInfo.GetValue(object_0))
					{
						fieldInfo.SetValue(this, fieldInfo.GetValue(object_0));
					}
				}
			}
		}
		public T clone<T>() where T : class
		{
			return base.MemberwiseClone() as T;
		}
		public virtual void merge(object object_0)
		{
			this.copy(object_0);
		}
	}
}
